/*
 * Copyright 2011-2012 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.sabayframework.activity;

import java.util.List;
import java.util.concurrent.atomic.AtomicLong;

import org.junit.Test;
import org.sabayframework.activity.Activity;
import org.sabayframework.activity.ActivityContext;
import org.sabayframework.activity.impl.Pipeline;
import org.sabayframework.activity.impl.State;
import org.sabayframework.activity.impl.StatefulActivity;
import org.sabayframework.channel.Channel;
import org.sabayframework.channel.Lock;
import org.sabayframework.channel.ram.ConcurrentArrayChannel;
import org.sabayframework.queue.ExecutionQueue;
import org.sabayframework.queue.impl.CentralizedExecutionQueue;

/*
 * TODO design a language for defining simulated activities.
 * Syntax ideas: Generator(1000) * Copy(1) | Work(20) + Work(20) <Work(10)> | Terminator(1000)
 * | - pipelining
 * + - sequencing  
 * * - forking
 * <> - forking-joining
 * parameters:
 *  fork size == cores
 *  pipeline buffer size = 100
 *  cores
 *  fork input(join output)= 1
 *  fork output(join input)= 2
 * */
public class Simulator {

}
